模版方法,父类定义模版方法,子类重写抽象和钩子方法。
介绍
设计模式中,模版设计模式,在日常的开发中,是比较常用的了。很好的复合了ocp(Open Closed Principle),通过继承的方式,客户端重写抽象方法和钩子方法,实现自己的业务,很好的拓展性。我刚刚开始接触的时候对这个钩子方法也是很迷惑,在下面讲整个结构的时候,会详细的讲解钩子函数。
应用场景
UML
方法说明
模版方法(main):模版方法,客户端调用的主要方法。
抽象方法(concreteMethod):子类提供具体业务实现。
勾子方法(hookMethod):父类中提供默认空实现,并且这个方法会在模版方法调用,子类可以重写也可以不用重写。
使用
父类:定义模版方法,并且定义抽象方法和钩子方法。
子类:根据具体的业务需要重写抽象方法。也可以根据具体的业务场景,重写钩子方法。当然也不可以重写钩子方法。也可以业务定义新的方法。
客户端(client):调用时候主要是调用模版方法。
优缺点
- 优点:
- 缺点:
拓展性
具有很好的拓展型,根据不同的业务定义不同的子类。
实例
源码地址: